wayland: Fix up visual implementation
authorMatthias Clasen <mclasen@redhat.com>
Sat, 26 Mar 2016 18:58:48 +0000 (14:58 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 26 Mar 2016 18:58:48 +0000 (14:58 -0400)
Don't return visuals that don't match the requested depth
and/or visual type.

gdk/wayland/gdkscreen-wayland.c

index 362029521b2b535b394d2be0ae1d650772e0e1e3..f1db311d53555959ee2577a6f5bc3f5f5bd0b38d 100644 (file)
@@ -864,14 +864,20 @@ static GdkVisual*
 gdk_wayland_screen_visual_get_best_with_depth (GdkScreen *screen,
                                               gint       depth)
 {
-  return GDK_WAYLAND_SCREEN (screen)->visual;
+  if (depth == 32)
+    return GDK_WAYLAND_SCREEN (screen)->visual;
+  else
+    return NULL;
 }
 
 static GdkVisual*
 gdk_wayland_screen_visual_get_best_with_type (GdkScreen     *screen,
                                              GdkVisualType  visual_type)
 {
-  return GDK_WAYLAND_SCREEN (screen)->visual;
+  if (visual_type == GDK_VISUAL_TRUE_COLOR)
+    return GDK_WAYLAND_SCREEN (screen)->visual;
+  else
+    return NULL;
 }
 
 static GdkVisual*
@@ -879,7 +885,10 @@ gdk_wayland_screen_visual_get_best_with_both (GdkScreen     *screen,
                                              gint           depth,
                                              GdkVisualType  visual_type)
 {
-  return GDK_WAYLAND_SCREEN (screen)->visual;
+  if (depth == 32 && visual_type == GDK_VISUAL_TRUE_COLOR)
+    return GDK_WAYLAND_SCREEN (screen)->visual;
+  else
+    return NULL;
 }
 
 static void